The present invention relates generally to voice applications, and more particularly, to techniques for creating voice applications using a voice application development environment, and techniques for translating voice applications into different runtime environments.
A voice application is a system that provides interactive voice dialogues. Examples of voice applications include Voice Recognition (VR) and Interactive Voice Response (IVR) communication systems. Voice applications allow a telephone caller to select an option from a spoken menu and interface with a computer system in a pre-defined way. Typically, such voice applications play pre-recorded, digitized voice prompts. The caller can respond to these prompts by pressing a key on a telephone keypad or by speaking back audible answers to the system (e.g., saying “yes” or “no”).
Such voice application systems can be implemented using a variety of proprietary and open source (free) solutions that include a runtime environment. A runtime environment is a software and/or hardware system that can execute an application. A voice application can be specified using metadata, such as an XML-based markup text (e.g., VoiceXML or Visual Composer Language (VCL)). The flow of a voice application, expressed as VoiceXML or VCL, is then interpreted to generate an executable version that may be deployed within a runtime environment.
One problem with contemporary voice application systems is that they are typically proprietary. Consequently, such systems may execute voice applications only if such voice applications are expressed in the particular language of the voice system provider (i.e., in a proprietary language). As a result, conventional voice application systems do not have the flexibility to implement voice applications created using different technologies. This limits the usefulness and portability of any given voice application.
Thus, there is a need for an increased flexibility in voice applications. Embodiments of the present invention provide systems and methods that may be used for creating and translating voice applications into different runtime environments.